home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / winsock / ws_ping.zip / WSPI_SRC.ZIP / IP_ICMP.H next >
C/C++ Source or Header  |  1993-10-03  |  3KB  |  92 lines

  1. #ifndef IP_ICMPHEADER
  2.  
  3. #define IP_ICMPHEADER
  4.  
  5. struct icmp {
  6.        BYTE icmp_type;
  7.        BYTE icmp_code;
  8.        WORD icmp_cksum;
  9.        WORD icmp_id;
  10.        WORD icmp_seq;
  11.        char icmp_data[1];
  12. };
  13.  
  14. #define SIZE_ICMP_HDR   8
  15. #define SIZE_TIME_DATA  8
  16.  
  17. struct ip {
  18.        BYTE    ip_hl:4,                /* header length */
  19.                ip_v:4;                 /* version */
  20.        BYTE    ip_tos;                 /* type of service */
  21.        short   ip_len;                 /* total length */
  22.        u_short ip_id;                  /* identification */
  23.        short   ip_off;                 /* fragment offset field */
  24.        BYTE    ip_ttl;                 /* time to live */
  25.        BYTE    ip_p;                   /* protocol */
  26.        u_short ip_sum;                 /* checksum */
  27.        struct  in_addr ip_src,ip_dst;  /* source and dest address */
  28. };
  29.  
  30. #define ICMP_ECHOREPLY            0    /* echo reply */
  31. #define ICMP_UNREACH              3    /* dest unreachable, codes: */
  32. #define   ICMP_UNREACH_NET        0    /* bad net */
  33. #define   ICMP_UNREACH_HOST       1    /* bad host */
  34. #define   ICMP_UNREACH_PROTOCOL   2    /* bad protocol */
  35. #define   ICMP_UNREACH_PORT       3    /* bad port */
  36. #define   ICMP_UNREACH_NEEDFRAG   4    /* IP_DF caused drop */
  37. #define   ICMP_UNREACH_SRCFAIL    5    /* src route failed */
  38. #define ICMP_SOURCEQUENCH         4    /* packet lost, slow down */
  39. #define ICMP_REDIRECT             5    /* shorter route, codes: */
  40. #define   ICMP_REDIRECT_NET       0    /* for network */
  41. #define   ICMP_REDIRECT_HOST      1    /* for host */
  42. #define   ICMP_REDIRECT_TOSNET    2    /* for tos and net */
  43. #define   ICMP_REDIRECT_TOSHOST   3    /* for tos and host */
  44. #define ICMP_ECHO                 8    /* echo service */
  45. #define ICMP_TIMXCEED             11   /* time exceeded, code: */
  46. #define   ICMP_TIMXCEED_INTRANS   0    /* ttl==0 in transit */
  47. #define   ICMP_TIMXCEED_REASS     1    /* ttl==0 in reass */
  48. #define ICMP_PARAMPROB            12   /* ip header bad */
  49. #define ICMP_TSTAMP               13   /* timestamp request */
  50. #define ICMP_TSTAMPREPLY          14   /* timestamp reply */
  51. #define ICMP_IREQ                 15   /* information request */
  52. #define ICMP_IREQREPLY            16   /* information reply */
  53. #define ICMP_MASKREQ              17   /* address mask request */
  54. #define ICMP_MASKREPLY            18   /* address mask reply */
  55.  
  56. #define ICMP_MAXTYPE              18
  57.  
  58. #define ICMP_MINLEN     8                               /* abs minimum */
  59. #define ICMP_TSLEN      (8 + 3 * sizeof (n_time))       /* timestamp */
  60. #define ICMP_MASKLEN    12                              /* address mask */
  61. #define ICMP_ADVLENMIN  (8 + sizeof (struct ip) + 8)    /* min */
  62. #define ICMP_ADVLEN(p)  (8 + ((p)->icmp_ip.ip_hl << 2) + 8)
  63.  
  64. #define STNORM          0
  65.  
  66. /* Definition of the lowest telnet byte following an IAC byte */
  67. #define LOW_TEL_OPT 236
  68.  
  69. #define TEL_EOF     236
  70. #define SUSP        237
  71. #define ABORT       238
  72.  
  73. #define SE          240
  74. #define NOP         241
  75. #define DM          242
  76. #define BREAK       243
  77. #define IP          244
  78. #define AO          245
  79. #define AYT         246
  80. #define EC          247
  81. #define EL          248
  82. #define GOAHEAD     249
  83. #define SB          250
  84. #define WILL        251
  85. #define WONT        252
  86. #define DO          253
  87. #define DONT        254
  88. #define IAC         255
  89.  
  90. #endif
  91.  
  92.